This invention is in general related to data communications and more particularly to an echo cancellation technique that can be applied to a transmission line signal received by an input/output (i.e., I/O) circuit of an integrated circuit device.
I/O circuits act as the interface between different logic functional units of an electrical system. The functional units may be implemented in separate integrated circuit dies (i.e., IC chips) of the system. These chips may be in separate IC packages that have been soldered to a printed wiring board (i.e., PWB). The chips communicate with each other over one or more conductive transmission lines. The transmission lines may be a parallel bus formed on a PWB, and they may be of the point-to-point or multi-drop variety. Alternatively, the transmission line may be a serial link such as a coaxial cable. In both cases, each chip has an I/O circuit that includes a driver and a receiver for transmitting and detecting symbols. The driver and receiver translate between on-chip signaling and signaling that is suitable for high speed transmission (e.g., at several hundred megabits per second and higher) over a transmission line. In a ‘bidirectional link’, the driver and receiver pair are connected to the same transmission line.
A problem with high speed data communication is that discontinuities in the transmission line, such as those caused by, for example, PWB connectors or sockets, may cause signal reflections. These reflections are also known as ‘echo’. In a bidirectional link, the echo of a data symbol transmitted by a near end driver can distort the transmission line signal at a near end receiver, thereby causing an error when detecting a data symbol that has been transmitted by a far end driver.
To correct for echo at the near end receiver, a digital echo cancellation process may be used. In such a technique, the received transmission line signal is first digitized at a very high sampling rate (which is significantly higher than the data symbol transmission rate of the link). An estimated, digital correction value is then added to each sample of the digitized transmission line signal, to yield an ‘echo cancelled’ version of the signal. This echo cancelled signal is then translated into a sequence of data symbol values (such as logic values ‘0’ and ‘1’ for a binary communication link) by comparing the samples to a digital, reference value.
Each estimated correction value can be determined by a discrete time, echo cancellation filter, based upon data symbols previously transmitted by the near end driver. The characteristics of this filter can be adapted, for example, during a calibration or training period in which known symbols are transmitted by the near end and far end drivers. The filter characteristics are selected so that the comparisons between the corrected samples and the fixed reference value yield the sequence of data symbols which were transmitted by the far end driver. Thereafter, with the filter calibrated in this manner, random sequences of data symbols transmitted by the far end can be expected to be properly detected despite the presence of echo (being a reflection of a near end transmission) in the transmission line signal.